home *** CD-ROM | disk | FTP | other *** search
-
-
-
- AWK User Commands AWK
-
-
-
- NNAAMMEE
- awk - pattern scanning and processing language
-
- SSYYNNOOPPSSIISS
- aawwkk [ --FF_c ] [ prog ] [ file ] ...
-
- DDEESSCCRRIIPPTTIIOONN
- _A_w_k scans each input _f_i_l_e for lines that match any of a set
- of patterns specified in _p_r_o_g. With each pattern in _p_r_o_g
- there can be an associated action that will be performed
- when a line of a _f_i_l_e matches the pattern. The set of pat-
- terns may appear literally as _p_r_o_g, or in a file specified
- as --ff _f_i_l_e.
-
- Files are read in order; if there are no files, the standard
- input is read. The file name `-' means the standard input.
- Each line is matched against the pattern portion of every
- pattern-action statement; the associated action is performed
- for each matched pattern.
-
- An input line is made up of fields separated by white space.
- (This default can be changed by using FS, _v_i_d_e _i_n_f_r_a.) The
- fields are denoted $1, $2, ... ; $0 refers to the entire
- line.
-
- A pattern-action statement has the form
-
- pattern { action }
-
- A missing { action } means print the line; a missing pattern
- always matches.
-
- An action is a sequence of statements. A statement can be
- one of the following:
-
- if ( conditional ) statement [ else statement ]
- while ( conditional ) statement
- for ( expression ; conditional ; expression ) statement
- break
- continue
- { [ statement ] ... }
- variable = expression
- print [ expression-list ] [ >expression ]
- printf format [ , expression-list ] [ >expression ]
- next # skip remaining patterns on this input line
- exit # skip the rest of the input
-
- Statements are terminated by semicolons, newlines or right
- braces. An empty expression-list stands for the whole line.
- Expressions take on string or numeric values as appropriate,
- and are built using the operators +, -, *, /, %, and con-
- catenation (indicated by a blank). The C operators ++, --,
-
-
-
- Sprite v1.0 April 29, 1985 1
-
-
-
-
-
-
- AWK User Commands AWK
-
-
-
- +=, -=, *=, /=, and %= are also available in expressions.
- Variables may be scalars, array elements (denoted x[i]) or
- fields. Variables are initialized to the null string.
- Array subscripts may be any string, not necessarily numeric;
- this allows for a form of associative memory. String con-
- stants are quoted "...".
-
- The _p_r_i_n_t statement prints its arguments on the standard
- output (or on a file if >_f_i_l_e is present), separated by the
- current output field separator, and terminated by the output
- record separator. The _p_r_i_n_t_f statement formats its expres-
- sion list according to the format (see _p_r_i_n_t_f(3S)).
-
- The built-in function _l_e_n_g_t_h returns the length of its argu-
- ment taken as a string, or of the whole line if no argument.
- There are also built-in functions _e_x_p, _l_o_g, _s_q_r_t, and _i_n_t.
- The last truncates its argument to an integer.
- _s_u_b_s_t_r(_s, _m, _n) returns the _n-character substring of _s that
- begins at position _m. The function
- _s_p_r_i_n_t_f(_f_m_t, _e_x_p_r, _e_x_p_r, ...) formats the expressions
- according to the _p_r_i_n_t_f(3S) format given by _f_m_t and returns
- the resulting string.
-
- Patterns are arbitrary Boolean combinations (!, ||, &&, and
- parentheses) of regular expressions and relational expres-
- sions. Regular expressions must be surrounded by slashes
- and are as in _e_g_r_e_p. Isolated regular expressions in a pat-
- tern apply to the entire line. Regular expressions may also
- occur in relational expressions.
-
- A pattern may consist of two patterns separated by a comma;
- in this case, the action is performed for all lines between
- an occurrence of the first pattern and the next occurrence
- of the second.
-
- A relational expression is one of the following:
-
- expression matchop regular-expression
- expression relop expression
-
- where a relop is any of the six relational operators in C,
- and a matchop is either ~ (for contains) or !~ (for does not
- contain). A conditional is an arithmetic expression, a
- relational expression, or a Boolean combination of these.
-
- The special patterns BEGIN and END may be used to capture
- control before the first input line is read and after the
- last. BEGIN must be the first pattern, END the last.
-
- A single character _c may be used to separate the fields by
- starting the program with
-
-
-
-
- Sprite v1.0 April 29, 1985 2
-
-
-
-
-
-
- AWK User Commands AWK
-
-
-
- BEGIN { FS = "c" }
-
- or by using the --FF_c option.
-
- Other variable names with special meanings include NF, the
- number of fields in the current record; NR, the ordinal
- number of the current record; FILENAME, the name of the
- current input file; OFS, the output field separator (default
- blank); ORS, the output record separator (default newline);
- and OFMT, the output format for numbers (default "%.6g").
-
- EEXXAAMMPPLLEESS
- Print lines longer than 72 characters:
-
- length > 72
-
- Print first two fields in opposite order:
-
- { print $2, $1 }
-
- Add up first column, print sum and average:
-
- { s += $1 }
- END { print "sum is", s, " average is", s/NR }
-
- Print fields in reverse order:
-
- { for (i = NF; i > 0; --i) print $i }
-
- Print all lines between start/stop pairs:
-
- /start/, /stop/
-
- Print all lines whose first field is different from previous
- one:
-
- $1 != prev { print; prev = $1 }
-
- SSEEEE AALLSSOO
- lex(1), sed(1)
- A. V. Aho, B. W. Kernighan, P. J. Weinberger, _A_w_k - _a _p_a_t_-
- _t_e_r_n _s_c_a_n_n_i_n_g _a_n_d _p_r_o_c_e_s_s_i_n_g _l_a_n_g_u_a_g_e
-
- BBUUGGSS
- There are no explicit conversions between numbers and
- strings. To force an expression to be treated as a number
- add 0 to it; to force it to be treated as a string concaten-
- ate "" to it.
-
-
-
-
-
-
-
- Sprite v1.0 April 29, 1985 3
-
-
-
-